home *** CD-ROM | disk | FTP | other *** search
/ Software of the Month Club 2000 October / Software of the Month - Ultimate Collection Shareware 277.iso / pc / PROGRAMS / UTILITY / WINLINUX / DATA1.CAB / programs_-_include / ASM-ARM / DELAY.H < prev    next >
C/C++ Source or Header  |  1999-09-17  |  786b  |  33 lines

  1. #ifndef __ASM_ARM_DELAY_H
  2. #define __ASM_ARM_DELAY_H
  3.  
  4. /*
  5.  * Copyright (C) 1995 Russell King
  6.  *
  7.  * Delay routines, using a pre-computed "loops_per_second" value.
  8.  */
  9.  
  10. extern void __delay(int loops);
  11.  
  12. /*
  13.  * division by multiplication: you don't have to worry about
  14.  * loss of precision.
  15.  *
  16.  * Use only for very small delays ( < 1 msec).  Should probably use a
  17.  * lookup table, really, as the multiplications take much too long with
  18.  * short delays.  This is a "reasonable" implementation, though (and the
  19.  * first constant multiplications gets optimized away if the delay is
  20.  * a constant)
  21.  */
  22. extern void udelay(unsigned long usecs);
  23.  
  24. extern __inline__ unsigned long muldiv(unsigned long a, unsigned long b, unsigned long c)
  25. {
  26.     return a * b / c;
  27. }
  28.  
  29.     
  30.  
  31. #endif /* defined(_ARM_DELAY_H) */
  32.  
  33.